/*
 * (C)2012 Exlu Corporation. All rights reserved.
 * 注意事項   :
 */
package cn.exlu.wea.field.calculate;

import java.math.BigDecimal;

/**
 * 数值计算类
 * @author Mark 
 * @version 1.0.1.1
 * @CreateTime 2012-2-26
 * @UpdateTime 2012-12-10
 */
public final class LpCalcDigitalUtil {
    
    /**
     * 数值相加
     * @param augend 被加数
     * @param addend 加数
     * @return 和
     */
    public static String add(String augend,String addend){
        BigDecimal augendBig=new BigDecimal(augend);
        BigDecimal addendBig=new BigDecimal(addend);
        return augendBig.add(addendBig).toString();
    }

    /**
     * 数值相加
     * @param augend 被加数
     * @param addend 加数
     * @return 和
     */
    public static String add(String augend,int addend){
        BigDecimal augendBig=new BigDecimal(augend);
        BigDecimal addendBig=new BigDecimal(addend);
        return augendBig.add(addendBig).toString();
    }

    /**
     * 数值相减
     * @param minuend 被减数
     * @param subtrahend 减数
     * @return 差
     */
    public static String subtract(String minuend,String subtrahend){
        BigDecimal minuendBig=new BigDecimal(minuend);
        BigDecimal subtrahendBig=new BigDecimal(subtrahend);
        return minuendBig.subtract(subtrahendBig).toString();
    }
 
    /**
     * 数值相减
     * @param minuend 被减数
     * @param subtrahend 减数
     * @return 差
     */
    public static String subtract(String minuend,int subtrahend){
        BigDecimal minuendBig=new BigDecimal(minuend);
        BigDecimal subtrahendBig=new BigDecimal(subtrahend);
        return minuendBig.subtract(subtrahendBig).toString();
    }

    /**
     * 数值相乘
     * @param multiplicand 被乘数
     * @param multiplier 乘数
     * @return 积
     */
    public static String multiply(String multiplicand,String multiplier){
        BigDecimal multiplicandBig=new BigDecimal(multiplicand);
        BigDecimal multiplierBig=new BigDecimal(multiplier);
        return multiplicandBig.multiply(multiplierBig).toString();
    }

    /**
     * 数值相乘
     * @param multiplicand 被乘数
     * @param multiplier 乘数
     * @return 积
     */
    public static String multiply(String multiplicand,int multiplier){
        BigDecimal multiplicandBig=new BigDecimal(multiplicand);
        BigDecimal multiplierBig=new BigDecimal(multiplier);
        return multiplicandBig.multiply(multiplierBig).toString();
    }
 
    /**
     * 四舍五入数值相除
     * @param dividend 被除数
     * @param divisor 除数
     * @param scale 保留小数位数
     * @return 商
     */
    public static String divide(String dividend,String divisor,int scale){
        BigDecimal dividendBig=new BigDecimal(dividend);
        BigDecimal divisorBig=new BigDecimal(divisor);
        return dividendBig.divide(divisorBig,scale,BigDecimal.ROUND_HALF_UP).toString();
    }

    /**
     * 四舍五入数值相除
     * @param dividend 被除数
     * @param divisor 除数
     * @param scale 保留小数位数
     * @return 商
     */
    public static String divide(String dividend,int divisor,int scale){
        BigDecimal dividendBig=new BigDecimal(dividend);
        BigDecimal divisorBig=new BigDecimal(divisor);
        return dividendBig.divide(divisorBig,scale,BigDecimal.ROUND_HALF_UP).toString();
    }
}
